package fr.generali.accueilclient.gwt.client.ui.common.message;

import java.util.Collection;

/**
 * Classe permettant de mettre en forme des {@link Message}.
 */
public class MessageRenderer {

    private static final String NEW_LINE = "<br>";

    private static final String CAUSE_PREFIX = ",&nbsp;";

    /**
     * Met en forme les messages et les causes qui leurs sont associées sous la
     * forme<br>
     * d'une chaine de caractère.<br>
     * 
     * @param messages
     *            : les messages à formatter
     * @return le résultat du formatage
     */
    public static String renderAsString(Collection<Message> messages) {
        StringBuilder builder = new StringBuilder();

        for (Message message : messages) {
            builder.append(message.getMessage());
            builder.append(NEW_LINE);
            if (message.hasCauses()) {
                for (String cause : message.getCauses()) {
                    builder.append(CAUSE_PREFIX + cause);
                    builder.append(NEW_LINE);
                }
            }
        }
        return builder.toString();
    }

    public static String renderAsString(Message message) {
        StringBuilder builder = new StringBuilder();
        builder.append(message.getMessage());
        builder.append(NEW_LINE);
        if (message.hasCauses()) {
            for (String cause : message.getCauses()) {
                builder.append(CAUSE_PREFIX + cause);
                builder.append(NEW_LINE);
            }
        }

        return builder.toString();
    }

}
